# Esta clase maneja los estados posibles de una cuenta.
class EstadosCuentaController < ApplicationController
  
   before_filter :ensure_adm
 
# Recupera todas los estados de cuenta para ser mostrados en pantalla.
  def index
    @estados_cuenta = EstadoCuenta.search_all(params[:search],params[:page])
		
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @estados_cuenta }
    end
  end

  # Recupera el estado de cuenta que va a ser mostrado en pantalla.
  def show
    @estado_cuenta = EstadoCuenta.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @estado_cuenta }
    end
  end

# Prepara el nuevo estado de cuenta para su posterior creación efectiva.
  def new
    @estado_cuenta = EstadoCuenta.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @estado_cuenta }
    end
  end

   # Recupera el estado de cuenta que va a ser editado.
  def edit
    @estado_cuenta = EstadoCuenta.find(params[:id])
  end

# Crea el estado de cuenta.
  def create
    @estado_cuenta = EstadoCuenta.new(params[:estado_cuenta])

    respond_to do |format|
      if @estado_cuenta.save
        flash[:notice] = 'EstadoCuenta was successfully created.'
        format.html { redirect_to('/estados_cuenta') }
        format.xml  { render :xml => @estado_cuenta, :status => :created, :location => @estado_cuenta }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @estado_cuenta.errors, :status => :unprocessable_entity }
      end
    end
  end

  # Actualiza el estado de cuenta.
  def update
    @estado_cuenta = EstadoCuenta.find(params[:id])

    respond_to do |format|
      if @estado_cuenta.update_attributes(params[:estado_cuenta])
        flash[:notice] = 'EstadoCuenta was successfully updated.'
        format.html { redirect_to('/estados_cuenta') }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @estado_cuenta.errors, :status => :unprocessable_entity }
      end
    end
  end

# Borrar efectivamente el estado de cuenta.
  def destroy
    @estado_cuenta = EstadoCuenta.find(params[:id])
    @estado_cuenta.destroy

		if chequear_estado(@estado_cuenta)
 			@estado_cuenta.destroy
			respond_to do |format|
   			format.html { redirect_to(estados_cuenta_url) }
   			format.xml  { head :ok }
   		end	
 		else
 			redirect_to (estados_cuenta_path)
 		end
	end
	
# Verificar si existen cuenta con el estados de cuenta dado.	
	def chequear_estado(estado)
		if Cuenta.find(:first,:conditions => ['estado_cuenta_id = ?',estado.id])
			return false
		end
		return true
	end
  
  
end
